Field
Embodiments of the present invention generally relate to executing financial transactions. In particular, various embodiments relate to methods and systems for reducing latency in executing financial transactions by efficiently allocating sessions through load balancing to servers.
Description of the Related Art
Institutional buyers and sellers need to have reliable communication means to facilitate efficient trading in securities and other financial instruments. Traditionally, these parties have relied on telephone and fax communications to exchange orders, fills and other information (such as allocation information for bulk/block orders). Such methods have proven unreliable and susceptible to errors, e.g., as a result of transcribing information or transmitting information via voice communication means.
Adoption of Financial Information eXchange (FIX) as a protocol for electronically exchanging financial-transaction-related messages has the potential to bring a certain degree of efficiency to the trading process. The typical scenario where FIX has been used involves two parties to a financial transaction setting up a point-to-point communication link in order to exchange FIX protocol messages. However, this approach leads to two problems. The first problem is due to the establishment of numerous point-to-point communication links between the various members of the financial trading community, which can lead to an intractable mesh of communication links and nodes. The second problem is due to the evolution of the FIX protocol itself, which has resulted in the creation of numerous variants that are only loosely related to one another.
Delivery of trade related messages through trading applications to participants is highly time-sensitive, and almost approaches real-time. Providers of high frequency trading (HFT) platforms have to provide the lowest possible latency across the network infrastructure between a client/trader who places one or more trades, and the servers that process the trades. Such platforms not only have to maintain the trading application, but also need to manage market data, order, and the core software. In order to maintain a competitive edge, participants have to respond by changing their trading strategies and trading platform architectures to increase the speed of trading. Latency is an element that contributes to network speed and reflects time necessary to process the sale of a security and then to report the same to the market. Latency time is typically measured in microseconds or nanoseconds. A low latency network connection is the one that generally experiences small delay times, while a high latency connection generally suffers from long delays, and therefore low latency architecture for trading and reporting indicates lower efficiency in the platform.
Conventional financial trading platforms use a general Central Processing Unit (CPU) for inspecting packets and maintaining sessions across servers. Such a CPU also works in conjunction with multiple load balancers, which further increases the latency of transactions conducted within the sessions, wherein such latency can, in turn, equate to potentially large losses as prices of target financial instruments change rapidly. It is also wrongly thought that low latency periods can be achieved by reducing load on computing devices or by upgrading them by incorporating high speed processors, memory/other peripherals, or by improving software interface capabilities such as graphical user interface. However, although increase in processors might reduce some of the complications such as queue build-up, most of the processor time is used in processing information associated with other tasks such as enhancing software interface; making the underlying transactions to suffer with higher intrinsic latency and prevent the transaction platform from performing operations on incoming trade related messages.
There is therefore a need for a low latency system and method thereof for executing financial transactions based on the FIX protocol by efficiently allocating sessions through load balancing to servers.